// 消息提示
export function msg(content) {
	uni.showToast({
		title: content,
		icon: 'none',
	});
}
// 错误消息
export function msgError(content) {
	uni.showToast({
		title: content,
		icon: 'error',
	});
}
// 成功消息
export function msgSuccess(content) {
	uni.showToast({
		title: content,
		icon: 'success',
	});
}
// 隐藏消息
export function hideMsg() {
	uni.hideToast();
}
// 弹出提示
export function alert(content) {
	uni.showModal({
		title: '提示',
		content: content,
		showCancel: false,
	});
}
// 确认窗体
export function confirm(content) {
	return new Promise((resolve, reject) => {
		uni.showModal({
			title: '系统提示',
			content: content,
			success: function(res) {
				if (res.confirm) {
					resolve(res.confirm);
				}
			},
		});
	});
}
// 提示信息
export function showToast(option) {
	if (typeof option === 'object') {
		uni.showToast(option);
	} else {
		uni.showToast({
			title: option,
			icon: 'none',
			duration: 2500,
		});
	}
}
// 打开遮罩层
export function loading(content = "加载中...") {
	uni.showLoading({
		title: content,
		icon: 'none',
	});
}
// 关闭遮罩层
export function closeLoading() {
	nextTick(() => {
		uni.hideLoading();
	})
}

// 数组转对象
export function ArrayToObj(data, fileType = {
	key: 'key',
	val: 'val'
}) {
	let obj = {};
	if (Array.isArray(data)) {
		data.forEach(item => {
			obj[`${item[fileType.key]}`] = item[fileType.val];
		})
	}
	return obj;
}

/**
 * 回显数据字典（字符串数组）
 * @param {*} datas 数组原始数据
 * @param {*} value 需要查找的值 多个时按照separator拼接
 * @param {*} separator 多个值时拼接的标识（默认为 , ）
 * @param {*} param2 需要对应的 val和key
 * @returns
 */
export function selectDictLabel(
	datas,
	value,
	separator = ',', {
		dictValue = 'dictValue',
		dictLabel = 'dictLabel'
	} = {}
) {
	if (!['', undefined].includes(value)) {
		const actions = [],
			temp = String(value)?.split(separator);
		Object.keys(String(value)?.split(separator)).some((val) => {
			Object.keys(datas).some((key) => {
				if (datas[key][dictValue] == temp[val]) {
					actions.push(datas[key][dictLabel]);
				}
			});
		});
		return actions.join(',');
	}
}
export function pickerDefault(data, value, key = 'dictValue', ) {
	if (!data) return
	const index = data.findIndex(i => i[key] == value)
	if (index === -1) {
		return [0]
	} else {
		return [index]
	}
}

// 自动导入的方法
export const autoImportList = ['msg', 'msgError', 'msgSuccess', 'hideMsg', 'alert', 'confirm', 'showToast', 'loading',
	'closeLoading', 'ArrayToObj', 'selectDictLabel', 'pickerDefault'
]

export const lodashList = [
	'clone',
	'cloneDeep',
	'merge',
	'mergeWith',
	'isEqual',
	'isArray',
	'uniqBy',
	'isDate',
	'isElement',
	'isFunction',
	'isString',
	'isObject',
	'throttle',
	'debounce',
	'isNumber',
	'omit',
	'shuffle',
	'minBy',
	'maxBy',
];